package com.tbit.uqbike.object.pojo.vo;

import com.tbit.uqbike.constant.CsvConstant;
import com.tbit.uqbike.webmanager.util.csv.annotations.Csv;
import com.tbit.uqbike.webmanager.util.csv.annotations.Sum;
import lombok.Data;

import java.util.Date;

/**
 * @AUTHOR: wei.xing
 * @DATE: 2022-11-23 16:24
 **/
@Data
public class TransactionOrderIncomeVO {

    /**
     * 交易类型
     * 1：押金充值
     * 2：押金退款
     * 3：余额充值
     * 4：余额退款
     * 5：充值结束订单
     * 6：欠款补交
     * 7：骑行退款
     * 8：购买骑行卡
     * 9：骑行卡退款
     * 10：购买免押卡
     * 11：免押卡退款
     * 12：购买会员卡
     * 13：会员卡退款
     * 14：购买优惠券套餐
     * 15优惠券套餐退款
     */
    @Csv(name = "交易类型",
            keys = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"},
            values = {"押金充值", "押金退款", "余额充值", "余额退款", "充值结束订单",
                    "欠款补交", "骑行退款", "购买骑行卡", "骑行卡退款", "购买免押卡",
                    "免押卡退款", "购买会员卡", "会员卡退款", "购买优惠券套餐", "15优惠券套餐退款"}, type = CsvConstant.CSV_TYPE_WITHOUT)
    Integer transactionType;
    /**
     * 交易记录id
     */
    private Long transactionId;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 区域id
     */
    private Integer accountId;
    /**
     * 操作人ID
     */
    private Integer operatorId;
    /**
     * 商户平台订单号
     */
    @Csv(name = "商户平台订单号", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String transactionNO;
    /**
     * 业务平台订单编号
     */
    @Csv(name = "业务平台订单编号", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String businessNO;
    /**
     * 手机号
     */
    @Csv(name = "手机号", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String phone;
    /**
     * 归属区域
     */
    @Csv(name = "归属区域", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String accountName;
    /**
     * 交易金额（元）
     */
    @Sum
    @Csv(name = "交易金额（元）", type = CsvConstant.CSV_TYPE_WITHOUT)
    private Double transactionMoney;
    /**
     * 收支类型 1：收入 2：支出
     */
    @Csv(name = "收支类型", keys = {"1", "2"}, values = {"收入", "支出"}, type = CsvConstant.CSV_TYPE_WITHOUT)
    private Integer incomeType;
    /**
     * 支付平台 1：微信，2：支付宝，3：汇付
     */
    @Csv(name = "支付平台", keys = {"1", "2", "3"}, values = {"微信", "支付宝", "汇付"}, type = CsvConstant.CSV_TYPE_WITHOUT)
    private Integer payPlatform;

    /**
     * 发起时间
     */
    @Csv(name = "发起时间", type = CsvConstant.CSV_TYPE_WITHOUT)
    private Date launchTime;
    /**
     * 交易时间
     */
    @Csv(name = "交易时间", type = CsvConstant.CSV_TYPE_WITHOUT)
    private Date payTime;
    /**
     * 交易状态 1：成功 2：失败
     */
    @Csv(name = "交易状态", keys = {"1", "2"}, values = {"成功", "失败"}, type = CsvConstant.CSV_TYPE_WITHOUT)
    private Integer transactionState;

    /**
     * 已退款金额（元）
     */
    @Csv(name = "已退款金额（元）", type = CsvConstant.CSV_TYPE_WITHOUT)
    private Double refundMoney;

    /**
     * 操作人
     */
    @Csv(name = "操作人", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String operatorName;

    /**
     * 操作人手机号码
     */
    @Csv(name = "操作人手机号码", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String operatorPhone;

    /**
     * 用户姓名
     */
    @Csv(name = "用户姓名", type = CsvConstant.CSV_TYPE_WITHOUT)
    private String userName;

    /**
     * 退款状态(0 退款中)
     */
    private Integer refundStatus;

}
